The use of digital technology has led to great advances in the efficiency, reliability, and flexibility of voice and data communication systems. Nevertheless, it is a basic principle of communication theory that any information transmitted via a non-ideal medium, such as an RF (radio frequency) channel, is subject to degradation from a variety of sources. Digitally transmitted information is no exception.
For example, in an RF-based, digital voice communication system, an analog representation of voice information is typically sampled by a transmitter to create a continuous stream of digital information. The stream of digital information, in turn, is used to modulate an RF carrier. When the digitally modulated RF carrier is received by a receiver, the digital information is recovered. Degradation inherent to the RF carrier is reflected as errors in the recovered digital information, and thus adversely affects the analog representation reconstructed from the recovered digital information.
One advantage of digitally transmitted information, however, is that various techniques exist whereby errors occurring during the transmission of digital information (typically represented as bits or symbols) can be detected and, in some cases, corrected. Such techniques are often collectively referred to as error correction coding.
Error correction codes provide protection against errors by creating redundancy for the information being transmitted. This redundancy takes the form of additional bits appended to the information, often called parity bits. Prior to transmission over a communication channel, the information is passed through a known encoding function that generates uniquely encoded information, composed of the original information and its parity bits. The encoded information is then transmitted, via the communication channel, to a receiver. The receiver passes the received encoded information through a decoding function that uses the parity bits to determine if any errors have occurred in the information. Depending on the encoding/decoding function used, a finite number of errors can be detected and corrected. Most error correction coding schemes are unable to correct any errors when too many errors have occurred, resulting in uncorrectable errors. Examples of these types of error correction coding techniques are linear block codes (e.g., Hamming codes, BCH codes, etc.) and convolutional or trellis codes.
Unfortunately, the use of error correction coding techniques tends to increase the complexity of digital communication systems, principally at the receiver. This presents a significant problem, especially in communication systems that deal with information possessing various levels of error sensitivity. In the present context, error sensitivity describes the relationship between the occurrence of an error in a particular "piece" of digital information and the resultant effect on the desired output; errors in highly sensitive data cause dramatic and disastrous effects, while errors in insensitive data cause nearly imperceptible effects. Digital information can be divided into three classes: a relatively small set of highly error-sensitive (critical) data, a relatively large set of mildly error-sensitive (important) data, and a variable sized set of error-insensitive (non-critical) data. Examples of systems in which data may be partitioned by error sensitivity are low bit-rate compressed voice systems, and packet data transmission systems.
As mentioned above, errors occurring in critical data typically have a dramatic impact on the quality of information reconstructed from the critical data. Thus, owing to the complexity of error correction decoding, it would be advantageous to have knowledge of a channel quality metric that indicates the likelihood of uncorrectable errors in critical data before attempting further error detection/correction in less critical data. Although the linear block codes and convolutional/trellis codes discussed above can be used to produce such a channel quality metric under certain channel conditions, it is always desirable to enhance the performance and reduce the complexity of such error correction coding techniques.
Accordingly, there exists a need for a method for a receiver in a communications system to determine a channel quality metric. Such a method should offer enhanced performance and reduced complexity over prior art techniques.